char *s="abcde"
来源:百度知道 编辑:UC知道 时间:2024/06/17 00:13:55
以下程序的运行结果:
希望能够详细的讲解下
(1)
char *s="abcde";
s+=2;
printf("%c",*s);
(2)
char *s="abcde";
s+=2;
printf("%s",s");
(3)
char *s="abcde";
s+=2;
printf("%d",*s);
(2)输出的是字符串cde,这题应该怎样分析呢
希望能够详细的讲解下
(1)
char *s="abcde";
s+=2;
printf("%c",*s);
(2)
char *s="abcde";
s+=2;
printf("%s",s");
(3)
char *s="abcde";
s+=2;
printf("%d",*s);
(2)输出的是字符串cde,这题应该怎样分析呢
(1)
指针本来是指向字符串的首地址a的,+2后指向c,故输出:c
(2)
同理,由于是输出字符串,所以直到 '\0'为止,故输出:cde
(字符串都是以'\0'结束的,复制的时候虽然没有'\0',但是系统会自动给加上这个的,这是字符串结束标志)
(3)
同理,指向c,但是要输出整形,故读取c所占字节内容,c的ascII码为99,故即输出:99
(由于前面定义的指针p为字符型的,故即便是整形输出,也只读一个字节的内存)
希望能帮到你!~
1 s刚开始指向abcde这个字符串的首地址(也就是a),
s+=2后,s指向了c;输出后会打印c(因为%c是输出字符);
2 同上,输出后会打印cde(因为%s是输出字符串);
3 同上,输出后会打印99,好像是这个数,我也忘了,反正是一个整数(因为%d是输出整形);
s指向a字母对应地址,加2后指向c对应地址
那么
1输出的是字母c
2输出的是字符串cde
3输出的是字符c的ascii码
char s[]="ABCD";
char *s = "china";等价于 char *s;s = "china";对不对?
数组 char s[ ]="abc"有几个元素
C语言的 char s[]="Program",*p=s; 是什么意思?
设有“char s[]="Program",*p=s;”,则p[5]与s[5]各是什么意思?
char s[]="ab\0\123\\\n79"
已知char *s;s=malloc(6);那么,s="China";和strcpy(s,"China");有何区别?
2.有定义char s[ ]="China",*p=s;则执行printf ("%s",p+2);的输出结果为(
char a[10]="";是什么意思?
那char *s="\ta\017bc"中s所指向的字符串是5个还是6个啊?